GEMS Telemetry

Get and parse data sent to GEMS website. Data from 2025-06-23 to present.

Get Data

Get data from website.

Use start_date parameter to limit download.

Add row, type, send and line number

Separate data into post times, met, status, and adv data

Warning: Expected 9 pieces. Missing pieces filled with `NA` in 2 rows [1, 2].

reshape rga data

Filter bad data before timestamping adv data

Calculate per-send means

Warning: There were 4144 warnings in `summarise()`.
The first warning was:
ℹ In argument: `across(...)`.
ℹ In group 1: `send = 1`.
Caused by warning in `mean.default()`:
! argument is not numeric or logical: returning NA
ℹ Run `dplyr::last_dplyr_warnings()` to see the 4143 remaining warnings.
Warning: There were 3964 warnings in `summarise()`.
The first warning was:
ℹ In argument: `across(...)`.
ℹ In group 1: `send = 96`.
Caused by warning in `mean.default()`:
! argument is not numeric or logical: returning NA
ℹ Run `dplyr::last_dplyr_warnings()` to see the 3963 remaining warnings.

Status

Last post was 2025-07-07 10:20:25

How many status lines are in the wrong year?

Joining with `by = join_by(send)`

Teensy Temp

Junction temp of Surface teensy. Runs at 50C at room temp. >95C kills teensies.

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 926 rows containing missing values or values outside the scale range
(`geom_segment()`).

Battery

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).

Turbo

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Failed to fit group -1.
Caused by error in `gam.reparam()`:
! NA/NaN/Inf in foreign function call (arg 3)
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

RGA

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 1 row containing non-finite outside the scale range
(`stat_smooth()`).
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 1 row containing non-finite outside the scale range
(`stat_smooth()`).
Warning: Removed 1 row containing missing values or values outside the scale range
(`geom_point()`).

Oxygen

Carbon dioxide

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

Methane

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 576 rows containing non-finite outside the scale range
(`stat_smooth()`).

Hydrogen sulphide

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 322 rows containing non-finite outside the scale range
(`stat_smooth()`).

ADV

Pressure/Depth

ADV Correlation

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

ADV Amplitude

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

ADV Vertical Velocity

Warning: Removed 72 rows containing missing values or values outside the scale range
(`geom_pointrange()`).
Warning: Removed 659 rows containing missing values or values outside the scale range
(`geom_segment()`).

ADV Alongshore Velocity

ADV set up with x axis parallel to shore. Positive is North.

Warning: Removed 27 rows containing missing values or values outside the scale range
(`geom_segment()`).

ADV Onshore velocity

Positive is offshore

Warning: Removed 30 rows containing missing values or values outside the scale range
(`geom_segment()`).

IMU data

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Failed to fit group -1.
Caused by error in `gam.reparam()`:
! NA/NaN/Inf in foreign function call (arg 3)
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

Data issues

Bad Packets

Garbled status or data packets. These need to be filtered out before timestamping. These should be caught on the lander by adding a checksum. Also need to check whether data is corrupted from ADV-lander, lander-surface, or surface-web.

Out of order packets

Not sure what causes this. Happening on the server side. Maybe parallel processing of POST requests? Handled by sorting each send by packet number.

Missing data

Missing data includes bad packets. Need to separate out.

Joining with `by = join_by(send)`
`summarise()` has grouped output by 'send'. You can override using the
`.groups` argument.

Post times

timestamp send row_count
2025-07-07 07:10:25 2058 500
2025-07-07 07:20:25 2059 500
2025-07-07 07:30:25 2060 500
2025-07-07 07:40:25 2061 500
2025-07-07 07:50:25 2062 500
2025-07-07 08:00:24 2063 500
2025-07-07 08:10:25 2064 499
2025-07-07 08:20:25 2065 500
2025-07-07 08:30:25 2066 500
2025-07-07 08:40:25 2067 500
2025-07-07 08:50:00 2068 500
2025-07-07 09:00:25 2069 500
2025-07-07 09:10:25 2070 500
2025-07-07 09:20:25 2071 500
2025-07-07 09:30:25 2072 500
2025-07-07 09:40:25 2073 500
2025-07-07 09:50:24 2074 500
2025-07-07 10:00:00 2075 500
2025-07-07 10:10:25 2076 500
2025-07-07 10:20:25 2077 500

Lines per post

Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_point()`).